package gui;

import gui.main.Admin;
import gui.main.Film;
import gui.main.Jegyek;
import gui.main.Komment;
import gui.main.Musor;
import gui.main.Naplo;
import gui.main.Setting;
import gui.main.Statisztika;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;

import java.awt.event.KeyEvent;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import dataTypes.Felhasznalo;

public class Gui_main {
	public static JFrame main;
	private JTabbedPane tp;
	private JPanel fejlec;
	private ImageIcon icon;
	private JToolBar toolbar;
	
	public static Felhasznalo f;
	
	
	private JPanel tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8;
	private static final String stab1 = "Jegykiadás", 
				   stab2 = "Mûsor szerkesztés", 
				   stab3 = "Adminisztráció", 
				   stab4 = "Komment", 
				   stab5 = "Filmkezelő",
				   stab6 = "Beállítások",
				   stab7 = "Napló", 
				   stab8 = "Statisztika";
	
	public Gui_main(String cim) {
		main = new JFrame(cim);
		icon = createImageIcon("img/logo.gif","");
		main.setResizable(false); // újraméretezés tiltása (vagyis hogy a júzer tudja-e méretezni)
	    main.setIconImage(icon.getImage());
		main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		this.fejlec = new JPanel();
		fejlec.setSize(100,100);
		this.tp = new JTabbedPane();
	}
	
	public void CreateMainGUI(Felhasznalo f) {
			this.f=f;			
			
			tab1 = Jegyek.createJegyek();
			icon = createImageIcon("img/ticket_icon.png","");
			tp.addTab(stab1, icon, tab1, "Itt lehet jegyeket foglalni");
			tp.setMnemonicAt(0, KeyEvent.VK_1);
		if(f.jogosultsag==2){		
			icon = createImageIcon("img/cinema_icon.png","");
			tp.addTab(stab2, icon, tab2, "Itt lehet műsorokat összeállítani");
			tp.setMnemonicAt(1, KeyEvent.VK_2);
			
			icon = createImageIcon("img/users-icon.png","");
			tp.addTab(stab3, icon, tab4, "Itt lehet adminisztrációs feladatokat végezni");
			tp.setMnemonicAt(2, KeyEvent.VK_3);
			
			icon = createImageIcon("img/comment-icon.png","");
			tp.addTab(stab4, icon, tab5, "Itt lehet a kommenteket felügyelni");
			tp.setMnemonicAt(3, KeyEvent.VK_4);
			
			icon = createImageIcon("img/movie_icon.png","");
			tp.addTab(stab5, icon, tab6, "Itt lehet a filmeket kezelni");
			tp.setMnemonicAt(4, KeyEvent.VK_5);
			
			icon = createImageIcon("img/setting-icon.png","");
			tp.addTab(stab6, icon, tab7, "Alapadatok megadása");
			tp.setMnemonicAt(5, KeyEvent.VK_6);
			
			icon = createImageIcon("img/log-icon.png","");
			tp.insertTab(stab7, icon, tab8, "Naplózás", 6);
			tp.setMnemonicAt(6, KeyEvent.VK_7);
			
			icon = createImageIcon("img/stat-icon.png","");
			tp.addTab(stab8, icon, tab3, "Statisztika az eladásokról stb.");
			tp.setMnemonicAt(7, KeyEvent.VK_8);
		   
		}

		tp.addChangeListener(new ChangeListener(){
			public void stateChanged(ChangeEvent evt) {
		        JPanel atmeneti = null;
				switch(tp.getSelectedIndex()){
				case 0:
					atmeneti = Jegyek.createJegyek();	
					break;
				case 1:
					atmeneti = Musor.createMusor();	
					break;
				case 2:
					atmeneti = Admin.createAdmin();
					break;
				case 3:
					atmeneti = Komment.createKomment();
					break;
				case 4:
					atmeneti = Film.createMusor();
					break;
				case 5:
					atmeneti = Setting.createSetting();
					break;
				case 6:
					atmeneti = Naplo.createNaplo();
					break;
				case 7:
					atmeneti = Statisztika.createStat();
					break;
				}
				tp.setComponentAt(tp.getSelectedIndex(), atmeneti);
			
			}
		}
		);
		
		// ablak létrehozása; megjelenítése
		ImageIcon fejlec_img = createImageIcon("img/header.png","");
		JLabel b = new JLabel(fejlec_img);
		JButton signout = new JButton("Kijelentkezés", createImageIcon("img/signout.png","a"));
		
		toolbar = new JToolBar();
		toolbar.add(new JLabel("Bejelentkezve, mint " + f.felhnev + "! "));

        toolbar.setPreferredSize(new Dimension(790, 20));
        toolbar.setFloatable(false);
		fejlec.add(b);

		fejlec.add(toolbar);
		fejlec.setPreferredSize(new Dimension(800,110));

		
		
		tp.setTabPlacement(JTabbedPane.LEFT);
		main.add(fejlec, BorderLayout.PAGE_START);
		main.add(tp, BorderLayout.CENTER);
	
		main.setSize(800, 650);
		
		
		// Középre pozícionálás
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		int w = main.getWidth();
		int h = main.getHeight();
		int x = (dim.width-w)/2;
		int y = (dim.height-h)/2;
		main.setLocation(x,y);
		
		main.setVisible(true);
		
	}


	
	protected ImageIcon createImageIcon(String path, String description) {
		java.net.URL imgURL = getClass().getResource(path);
		if (imgURL != null) {
			return new ImageIcon(imgURL, description);
		} else {
			System.err.println("Couldn't find file: " + path);
			return null;
		}
	}
	

}

